home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: MegaDisc
/
MegaDisc 02 (1987)(MegaDisc Digital Publishing)(AU)[WB].zip
/
MegaDisc 02 (1987)(MegaDisc Digital Publishing)(AU)[WB].adf
/
PROGRAMS
/
tbomber
< prev
next >
Wrap
Text File
|
1987-04-21
|
11KB
|
401 lines
DEFINT a,c-f,h-q,s-z
RANDOMIZE TIMER
DIM bomber$(158),revbomber$(158),bomb$(92),tank$(134),explo1$(314),explo2$(314)
drawtitle:
SCREEN 1,320,200,3,1
WINDOW 2,"TANK BOMBER",(0,0)-(311,185),28,1
LOCATE 4,4:PRINT"TANK BOMBER";
LOCATE 6,4:PRINT"Place joystick in port #2"
PRINT"& press trigger to start the game";
SAY TRANSLATE$("TANK BOMAR ")
SAY TRANSLATE$("PLACE JOYSTICK IN PORT NUMBER TWO AND PRESS TRIGGER TO START THE GAME")
WHILE STRIG(3)=0:WEND
ChooseColours:
FOR p=0 TO 7
READ r!,g!,b!
PALETTE p,r!,g!,b!
NEXT p
DATA 0.5,0.8,1.0
DATA 0,0,0
DATA 0.75,0.75,0.5
DATA 1.0,0.5,0
DATA 0.85,0,0.85
DATA 0.5,0.5,0.6
DATA 0,1.0,0
DATA 0.75,0,0
Instructions:
CLS
LOCATE 4,4:PRINT" INSTRUCTIONS":PRINT
PRINT" You are controlling a plane"
PRINT" which drops one bomb at a"
PRINT" time. Score as many points"
PRINT" as possible by dropping"
PRINT" bombs on the tanks driving"
PRINT" across the desert."
PRINT" If one of the tanks reaches"
PRINT" the side then the game ends."
PRINT" If you hit a tank you score "
PRINT" 10 points."
PRINT" When all 3 tanks are bombed "
PRINT" another 3 will appear trave-"
PRINT" lling faster."
ReadShapes:
RESTORE BomberShape
FOR n=1 TO 158
READ a
bomber$=bomber$+CHR$(a)
NEXT n
OBJECT.SHAPE 1,bomber$
RESTORE ReverseBomberShape
FOR n=1 TO 158
READ a
revbomber$=revbomber$+CHR$(a)
NEXT n
OBJECT.SHAPE 2,revbomber$
RESTORE BombShape
FOR n=1 TO 92
READ a
bomb$=bomb$+CHR$(a)
NEXT n
OBJECT.SHAPE 3,bomb$
RESTORE TankShape
FOR n=1 TO 134
READ a
tank$=tank$+CHR$(a)
NEXT n
OBJECT.SHAPE 4,tank$
OBJECT.SHAPE 5,4
OBJECT.SHAPE 6,4
RESTORE ExplosionShape1
FOR n=1 TO 314
READ a
explo1$=explo1$+CHR$(a)
NEXT n
OBJECT.SHAPE 7,explo1$
RESTORE ExplosionShape2
FOR n=1 TO 314
READ a
explo2$=explo2$+CHR$(a)
NEXT n
OBJECT.SHAPE 8,explo2$
OBJECT.PRIORITY 1,1
OBJECT.PRIORITY 2,1
OBJECT.PRIORITY 3,4
OBJECT.PRIORITY 4,3
OBJECT.PRIORITY 5,3
OBJECT.PRIORITY 6,3
OBJECT.PRIORITY 7,2
OBJECT.PRIORITY 8,1
OBJECT.HIT 1,8,1
OBJECT.HIT 2,8,1
OBJECT.HIT 3,2,5
OBJECT.HIT 4,4,1
OBJECT.HIT 5,4,1
OBJECT.HIT 6,4,1
OBJECT.HIT 7,16,0
OBJECT.HIT 8,16,1
PRINT:PRINT" Press trigger to start"
WHILE STRIG(3)=0:WEND
CLS:COLOR 0,1 'draw sky
LINE (0,90)-(311,185),2,bf 'draw sand
DrawMountains:
RESTORE MountainShape
PSET (311,89),1
FOR a=0 TO 16
READ x,y
LINE -(x,y),1
NEXT a
PAINT (155,85),1
LOCATE 23,4:PRINT USING"SCORE = ###";score
PlaceObjects:
OBJECT.X 1,0:OBJECT.Y 1,4
OBJECT.X 2,0:OBJECT.Y 2,4
velocity=0
OBJECT.ON 1:jet=1
OBJECT.VX 1,25
Tanks:
wreck=0:velocity=velocity-2
OBJECT.Y 4,100
OBJECT.Y 5,120
OBJECT.Y 6,160
FOR j=0 TO 2
xplace(j)=INT(RND(1)*100)+187
OBJECT.X j+4,xplace(j)
NEXT j
OBJECT.ON 4,5,6
OBJECT.VX 4,velocity
OBJECT.VX 5,velocity
OBJECT.VX 6,velocity
OBJECT.START
COLLISION OFF
ON COLLISION GOSUB Collide:COLLISION ON
GOTO MainLoop
MainLoop:
IF wreck=3 THEN GOTO Tanks
WHILE STICK(2)=0 AND STRIG(3)=0:WEND
GOSUB Joystick
GOTO MainLoop
Joystick:
IF STRIG(3)=-1 THEN
bomb=1
OBJECT.X 3,OBJECT.X(jet)+10:OBJECT.Y 3,18
OBJECT.VY 3,25:OBJECT.START 3
OBJECT.ON 3
END IF
IF STICK(2)=1 THEN 'pushed to right
OBJECT.X 1,OBJECT.X(2)+6 'place right jet in left jets place
jet=1
OBJECT.OFF 2:OBJECT.ON 1 'replace on screen
OBJECT.VX 1,25 'set jet speed 25 to the right
OBJECT.START 1 'move right jet
END IF
IF STICK(2)=-1 THEN 'pushed to left
OBJECT.X 2,OBJECT.X(1)-6 'place left jet in right jets place
jet=2
OBJECT.OFF 1:OBJECT.ON 2 'replace on screen
OBJECT.VX 2,-25 'set jet speed 25 to the left
OBJECT.START 2 'move left jet
END IF
RETURN
Collide:
objectID=COLLISION(0)
collisionID=COLLISION(objectID)
IF objectID=1 THEN 'right jet hit border
OBJECT.X 2,OBJECT.X(1)-6 'place left jet in right jets place
jet=2
OBJECT.OFF 1:OBJECT.ON 2 'replace on screen
OBJECT.VX 2,-25 'set jet speed 25 to the left
OBJECT.START 2 'move left jet
END IF
IF objectID=2 THEN 'left jet hit border
OBJECT.X 1,OBJECT.X(2)+6 'place right jet in left jets place
jet=1
OBJECT.OFF 2:OBJECT.ON 1 'replace on screen
OBJECT.VX 1,25 'set jet speed 25 to the right
OBJECT.START 1 'move right jet
END IF
IF objectID>=3 AND (collisionID=3 OR collisionID=4 OR collisionID=5 OR collisionID=6) THEN
'bomb hit a tank
OBJECT.OFF collisionID,objectID 'wipe out tank,bomb
bomb=0
GOSUB Explosion
wreck=wreck+1:score=score+10
END IF
IF objectID=3 AND collisionID=-3 THEN
'bomb hit border
OBJECT.OFF 3
bomb=0
GOSUB Explosion
END IF
IF objectID>3 AND collisionID<0 THEN 'a tank hit border
endgame=1:END
END IF
RETURN
Explosion:
OBJECT.X 7,OBJECT.X(objectID):OBJECT.Y 7,OBJECT.Y(objectID)-8 'put explo1 at bomb position
OBJECT.OFF objectID
OBJECT.ON 7
OBJECT.X 8,OBJECT.X(7):OBJECT.Y 8,OBJECT.Y(7):OBJECT.ON 8
OBJECT.OFF 7
OBJECT.OFF 8
RETURN
BomberShape:
' dbomber -- 158 bytes.
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 3, 0, 0, 0, 26
DATA 0, 0, 0, 11, 0, 24, 0, 7
DATA 0, 0,254, 0, 0, 0,112, 0
DATA 0, 0, 56, 0, 0, 0, 60, 0
DATA 0, 0, 30, 1, 0, 0,255,255
DATA 254, 0,255,255,255,192, 96,255
DATA 0, 0, 65,248, 0, 0, 7,192
DATA 0, 0, 31,254, 0, 0,254, 0
DATA 0, 0,112, 0, 0, 0, 56, 0
DATA 0, 0, 60, 0, 0, 0, 30, 1
DATA 0, 0,127,255,248, 0,127,255
DATA 255,192, 96,255, 0, 0, 65,248
DATA 0, 0, 7,192, 0, 0, 31,254
DATA 0, 0, 2, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 1, 0, 0, 0, 0
DATA 6, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 2, 0, 0
ReverseBomberShape:
' dbomber (shape reversed) --158 bytes
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 3, 0, 0, 0, 26
DATA 0, 0, 0, 11, 0, 24, 0, 7
DATA 0, 0, 0, 0, 0,127, 0, 0
DATA 0, 14, 0, 0, 0, 28, 0, 0
DATA 0, 60, 0, 0,128,120, 0,127
DATA 255,255, 3,255,255,255, 0, 0
DATA 255, 6, 0, 0, 31,130, 0, 0
DATA 3,224, 0, 0,128,248, 0, 0
DATA 0,127, 0, 0, 0, 14, 0, 0
DATA 0, 28, 0, 0, 0, 60, 0, 0
DATA 128,120, 0, 31,255,254, 3,255
DATA 255,254, 0, 0,255, 6, 0, 0
DATA 31,130, 0, 0, 3,224, 0, 0
DATA 127,248, 0, 0, 0, 64, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0,128, 0, 0, 96
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 64, 0
BombShape:
' dbomb -- 92 bytes.
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 3, 0, 0, 0, 11
DATA 0, 0, 0, 11, 0, 24, 0, 7
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0,225,192
DATA 115,128, 51, 0, 30, 0, 12, 0
DATA 12, 0, 12, 0, 63, 0, 30, 0
DATA 12, 0, 12, 0
TankShape:
' dtanx -- 134 bytes.
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 3, 0, 0, 0, 24
DATA 0, 0, 0, 9, 0, 24, 0, 7
DATA 0, 0, 0,127,128, 0,255,255
DATA 192, 0, 0, 63, 0, 0, 31,255
DATA 240, 0,255,255,254, 0, 63,255
DATA 248, 0,127,255,252, 0,179, 51
DATA 26, 0,127,255,252, 0, 0, 0
DATA 0, 0,128, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0,127,128, 0,128,255
DATA 192, 0, 0, 63, 0, 0, 31,255
DATA 240, 0,255,255,254, 0, 63,255
DATA 248, 0, 0, 0, 0, 0, 51, 51
DATA 24, 0, 24, 0, 24, 0
ExplosionShape1:
' dexplo1 -- 314 bytes.
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 3, 0, 0, 0, 33
DATA 0, 0, 0, 16, 0, 24, 0, 7
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 3,192, 0
DATA 0, 0, 0, 3,192, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 64, 0, 0, 0, 0
DATA 0, 32, 1, 0, 0, 0, 0, 16
DATA 34, 24, 0, 0, 4, 16,196, 96
DATA 0, 0,195, 9, 89,128, 0, 0
DATA 60,197,166, 0, 0, 0, 3,178
DATA 216, 0, 0, 0, 1,251,239,128
DATA 0, 0, 62, 31,255,240, 0, 0
DATA 0,252,252, 0, 0, 0, 7, 42
DATA 35,192, 0, 0, 24,202, 16, 56
DATA 0, 0, 1, 10, 12, 0, 0, 0
DATA 2, 9, 2, 0, 0, 0, 4, 1
DATA 1,128, 0, 0, 8, 0, 0, 64
DATA 0, 0, 0, 64, 0, 0, 0, 0
DATA 0, 32, 1, 0, 0, 0, 0, 16
DATA 34, 24, 0, 0, 4, 16,196, 96
DATA 0, 0,195, 9, 89,128, 0, 0
DATA 60,197,166, 0, 0, 0, 3,178
DATA 216, 0, 0, 0, 1,248, 47,128
DATA 0, 0, 62, 28, 63,240, 0, 0
DATA 0,252,252, 0, 0, 0, 7, 42
DATA 35,192, 0, 0, 24,202, 16, 56
DATA 0, 0, 1, 10, 12, 0, 0, 0
DATA 2, 9, 2, 0, 0, 0, 4, 1
DATA 1,128, 0, 0, 8, 0, 0, 64
DATA 0, 0
ExplosionShape2:
' dexplo2 -- 314 bytes.
DATA 0, 0, 0, 0, 0, 0, 0, 0
DATA 0, 0, 0, 3, 0, 0, 0, 33
DATA 0, 0, 0, 16, 0, 24, 0, 7
DATA 0, 0, 0, 64, 0, 0, 0, 0
DATA 0, 32, 1, 0, 0, 0, 0, 0
DATA 38, 24, 0, 0, 4, 0,192, 0
DATA 0, 0,194, 0, 0, 0, 0, 0
DATA 0, 1,134, 0, 0, 0, 0, 0
DATA 136, 0, 0, 0, 1,176, 1,128
DATA 0, 0,112, 0,252, 48, 0, 0
DATA 0, 24, 96, 0, 0, 0, 7, 0
DATA 0, 0, 0, 0, 24,192, 0, 24
DATA 0, 0, 0, 8, 12, 0, 0, 0
DATA 0, 9, 0, 0, 0, 0, 4, 1
DATA 0,128, 0, 0, 8, 0, 0, 64
DATA 0, 0, 0, 64, 0, 0, 0, 0
DATA 0, 0, 1, 0, 0, 0, 0, 16
DATA 32, 8, 0, 0, 4, 16, 4, 96
DATA 0, 0,129, 9,121,128, 0, 0
DATA 60,197,166, 0, 0, 0, 3,178
DATA 80, 0, 0, 0, 1,107,238,128
DATA 0, 0,110, 31,207,208, 0, 0
DATA 0,236,220, 0, 0, 0, 3, 42
DATA 35,192, 0, 0, 16, 74, 16, 40
DATA 0, 0, 1, 2, 8, 0, 0, 0
DATA 2, 8, 2, 0, 0, 0, 0, 1
DATA 1, 0, 0, 0, 8, 0, 0, 64
DATA 0, 0, 0, 64, 0, 0, 0, 0
DATA 0, 32, 1, 0, 0, 0, 0, 0
DATA 38, 24, 0, 0, 4, 0,192, 0
DATA 0, 0,194, 0, 0, 0, 0, 0
DATA 0, 1,134, 0, 0, 0, 0, 0
DATA 136, 0, 0, 0, 1,176, 1,128
DATA 0, 0,112, 0, 60, 48, 0, 0
DATA 0, 24, 96, 0, 0, 0, 7, 0
DATA 0, 0, 0, 0, 24,192, 0, 24
DATA 0, 0, 0, 8, 12, 0, 0, 0
DATA 0, 9, 0, 0, 0, 0, 4, 1
DATA 0,128, 0, 0, 8, 0, 0, 64
DATA 0, 0
MountainShape:
DATA 0,89,0,70,40,60,50,85
DATA 80,55,120,79,137,79,144,60
DATA 170,58,200,69,220,56,255,76
DATA 262,60,269,76,285,55,311,75
DATA 311,89